A Code Reordering Transformation for Improved Cache Performance
نویسندگان
چکیده
We prove theorems that show that if we can reorder a program's memory reference stream such that the reordered memory reference stream satis es a disjointness property, then the transformed program corresponding to the reordered stream is guaranteed to have fewer misses for any cache with arbitrary size or organization so long as the cache uses the LRU replacement policy. We can apply these results to reorder instructions within a basic block, to transform loops, to reorder blocks within a procedure, or to reorder procedures within a program so as to improve hit rate for any cache that uses LRU replacement. Based on these theorems, we develop algorithmic methods for program transformation to improve cache performance. While there has been a lot of work in improving cache performance using program transformations, our work di ers from previous work in that it can be applied at many di erent levels, from the basic block to procedural levels, and does not require xing the size or organization of a cache prior to program transformation. We present preliminary experimental results that show that reordering based on our methods can result in signi cant improvements in hit rate and program performance.
منابع مشابه
Eecient Procedure Mapping Using Cache Line Coloring
As the gap between memory and processor performance continues to widen, it becomes increasingly important to exploit cache memory e ectively. Both hardware and software approaches can be explored to optimize cache performance. Hardware designers focus on cache organization issues, including replacement policy, associativity, line size and the resulting cache access time. Software writers use va...
متن کاملMapping using Cache Line Coloring
As the gap between memory and processor performance continues to widen, it becomes increasingly important to exploit cache memory effectively. Both hardware and software approaches can be explored to optimize cache performance. Hardware designers focus on cache organization issues, including replacement policy, associativity, block size and the resulting cache access time. Software writers use ...
متن کاملTemporal-Based Procedure Reordering for Improved Instruction Cache Performance
As the gap between memory and processor performance continues to grow, it becomes increasingly important to exploit cache memory effectively. Both hardware and software techniques can be used to better utilize the cache. Hardware solutions focus on organization, while most software solutions investigate how to best layout a program on the available memory space. In this paper we present a new l...
متن کاملMapping Using Static Call Graph Estimation
As the gap between memory and processor performance continues to grow, it becomes increasingly important to exploit cache memory e ectively. One technique used by compiler and linkers to improve the performance of the cache is code reordering. Code reordering optimizations rearrange a program so that sections of the program with temporal locality will be placed next to each other in the nal pro...
متن کاملMapping Using Static Call Graph EstimationAmir
As the gap between memory and processor performance continues to grow, it becomes increasingly important to exploit cache memory eeectively. One technique used by compiler and linkers to improve the performance of the cache is code reordering. Code reordering optimizations rearrange a program so that sections of the program with temporal locality will be placed next to each other in the nal pro...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2001